package com.example.crawler.utils;

import org.apache.poi.hssf.usermodel.*;

import java.util.List;
import java.util.Map;

public class ExcelUtil {
    /**

     * 导出Excel

     * @param sheetName sheet名称

     * @param title 标题

     * @param values 内容

     * @param wb HSSFWorkbook对象

     * @return

     */

    public static HSSFWorkbook getHSSFWorkbook(String sheetName, String []title, List<Map<String,Object>>  values, HSSFWorkbook wb){

        // 第一步，创建一个HSSFWorkbook，对应一个Excel文件

        if(wb == null){

            wb = new HSSFWorkbook();

        }

        // 第二步，在workbook中添加一个sheet,对应Excel文件中的sheet

        HSSFSheet sheet = wb.createSheet(sheetName);

        // 第三步，在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制

        HSSFRow row = sheet.createRow(0);

        // 第四步，创建单元格，并设置值表头 设置表头居中

        HSSFCellStyle style = wb.createCellStyle();

      //  style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

        //声明列对象

        HSSFCell cell = null;

        //创建标题

        for(int i=0;i<title.length;i++){

            cell = row.createCell(i);

            cell.setCellValue(title[i]);

            cell.setCellStyle(style);

        }

        //创建内容

        for(int i=0;i<values.stream().count();i++){

            row = sheet.createRow(i + 1);
            Map<String,Object> hashMap=values.get(i);
            if(!StringUtils.isEmptyOfStr(hashMap.get("S_INFO_NAME")))
                 row.createCell(0).setCellValue(hashMap.get("S_INFO_NAME").toString());
            else
                row.createCell(0).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("S_INFO_COMPNAME")))
                row.createCell(1).setCellValue(hashMap.get("S_INFO_COMPNAME").toString());
            else
                row.createCell(1).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("CHAIRMAN")))
                row.createCell(2).setCellValue(hashMap.get("CHAIRMAN").toString());
            else
                row.createCell(2).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("HlW_CATE_NAME")))
                 row.createCell(3).setCellValue(hashMap.get("HlW_CATE_NAME").toString());
            else
                row.createCell(3).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("S_INFO_EXCHANGE")))
                 row.createCell(4).setCellValue(hashMap.get("S_INFO_EXCHANGE").toString());
            else
                row.createCell(4).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("S_INFO_LISTDATE")))
                 row.createCell(5).setCellValue(hashMap.get("S_INFO_LISTDATE").toString());
            else
                row.createCell(5).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("S_VAL_MV")))
                row.createCell(6).setCellValue(hashMap.get("S_VAL_MV").toString());
            else
                row.createCell(6).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("COUNTRY")))
                 row.createCell(7).setCellValue(hashMap.get("COUNTRY").toString());
            else
                row.createCell(7).setCellValue("");
            if(!StringUtils.isEmptyOfStr(hashMap.get("FOUNDDATE")))
                row.createCell(8).setCellValue(hashMap.get("FOUNDDATE").toString());
            else
                row.createCell(8).setCellValue("");
        }

        return wb;

    }
}
